/*
 * Copyright (c) 2025 Airbyte, Inc., all rights reserved.
 */

package io.airbyte.cdk.load.model

import com.fasterxml.jackson.annotation.JsonProperty
import io.airbyte.cdk.load.model.checker.Checker
import io.airbyte.cdk.load.model.discover.CatalogOperation
import io.airbyte.cdk.load.model.spec.Spec

/**
 * Root configuration for a declarative destination that uploads data according to its declarative
 * components.
 */
data class DeclarativeDestination(
    @JsonProperty("checker") val checker: Checker,
    @JsonProperty("spec") val spec: Spec,
    @JsonProperty(value = "discover")
    val discover: CatalogOperation? =
        null, // todo: remove ? = null once we support Dynamic discovery and thus it can be a
// required component
)
